package com.achievo.know.application;

import java.util.List;

import com.achievo.know.domain.Function;
import com.achievo.know.domain.Role;
import com.achievo.know.domain.User;
import com.achievo.know.pojo.SearchParam;
import com.dayatang.querychannel.support.Page;

/**
 * 权限管理
 * @author hp
 *
 */
public interface AuthApplication {
	/**
	 * 角色列表
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public Page<Role> queryRolePage(int currentPage,int pageSize);
	/**
	 * 保存角色
	 * @param role
	 */
	public void saveRole(Role role);
	/**
	 * 删除角色
	 * @param ids
	 */
	public void batchDeleteRole(String[] ids);
	/**
	 * 设置权限
	 * @param roleId
	 * @param funcIds
	 */
	public void batchSetFunction(String roleId,String[] funcIds);
	/**
	 * 用户列表
	 * @param currentPage
	 * @param pageSize
	 * @param params 
	 * @return
	 */
	public Page<User> queryUserPage(int currentPage,int pageSize, SearchParam params);
	/**
	 * 保存用户
	 * @param user
	 */
	public void saveUser(User user);
	/**
	 * 删除用户
	 */
	public void batchDeleteUser(String[] ids);
	/**
	 * 设置角色
	 * @param userId
	 * @param roleIds
	 */
	public void batchSetRole(String userId,String[] roleIds);
	/**
	 * 设置读目录
	 * @param userId
	 * @param cateIds
	 */
	public void setCategorys(String userId,String[] cateIds);
	
	public Role getRole(Long id);
	public User getUser(Long id);
	public String getFuncJson(Long roleId);
	
	public List<Function> getRootFuncs();
	public String getRolesJson(Long userId);
	public String getCatesJson(Long userId);
	public String getRoleCatesJson(Long id);
	public void setRoleCategorys(String string, String[] idArr);
	public List<Role> getRoles();
	public void changePwd(String name, String password);
}
